簡介:消息隊(duì)列是個(gè)高大上的名詞兒,本質(zhì)上就是如何業(yè)務(wù)進(jìn)行排隊(duì)處理,最常的使用場景就是發(fā)送短信的時(shí)候使用短信隊(duì)列。但消息隊(duì)列可以做的不止是這一類場景,它在解耦、消峰、異步、一致性等方面都有很大的用武之地。因此如何合理使用消息隊(duì)列來處理一些特殊的業(yè)務(wù)需求,這就是我們這節(jié)課要解決的內(nèi)容。
課程所需庫文件:http://pan.baidu.com/s/1bQg038
第1章 消息隊(duì)列的概念、原理和場景
詳細(xì)介紹消息隊(duì)列的概念,以及他合用的一些場景,并歸納了一下其中會(huì)用到的技術(shù)點(diǎn)的優(yōu)缺點(diǎn)。
第2章 解耦案例:隊(duì)列處理訂單系統(tǒng)和配送系統(tǒng)
講解消息隊(duì)列用于解耦的案例,使用mysql的一個(gè)表,做為隊(duì)列存儲(chǔ),來實(shí)現(xiàn)成中間件來解耦訂單系統(tǒng)和配送系統(tǒng)。使用訂單系統(tǒng)實(shí)時(shí)寫入,并用定時(shí)任務(wù)啟動(dòng)配送系統(tǒng)的處理程序,對(duì)隊(duì)列進(jìn)行處理并標(biāo)記結(jié)果,使兩個(gè)業(yè)務(wù)系統(tǒng)相互獨(dú)立,以便分離部署,防止某一系統(tǒng)故障引起的連鎖故障。
第3章 流量削峰案例:Redis的List類型實(shí)現(xiàn)秒殺
講解一個(gè)秒殺時(shí)間點(diǎn)高流量的消峰的案例,使用Redis的List類型來做隊(duì)列存儲(chǔ),并利用Redis的高速度,對(duì)秒殺時(shí)的大量流量進(jìn)行處理,然后使用處理程序?qū)⒕彺娴慕Y(jié)果放置到數(shù)據(jù)庫中。利用內(nèi)存數(shù)據(jù)庫緩存機(jī)制將巨大的流量擋在了數(shù)據(jù)庫之前,有效減少了對(duì)服務(wù)器I/O的負(fù)荷。
第4章 RabbitMQ:更專業(yè)的消息系統(tǒng)實(shí)現(xiàn)方案
以RabbitMQ為例講解了一些專業(yè)消息系統(tǒng)的原理,并使用官方的DEMO,演示其中的一個(gè)模塊的使用方法。了解這類消息系統(tǒng)使用的步驟和應(yīng)用場景。